package com.siruier.boss.api

import android.os.Parcelable
import com.squareup.moshi.Json
import kotlinx.parcelize.Parcelize
import java.math.BigDecimal

data class AccessTokenBean(
    val accessToken: String = ""
)


data class PageBean<T>(
    val records: MutableList<T> = mutableListOf(),
    val total: Int = 0,
)

data class UserInfoBean(
    val accessToken: String = "",
    val authStatus: Int = -1,
    var avatar: String = "",
    val phone: String = "",
    var setPayPassword: Int = -1,
    val idCardNo: String = "",
    val cardNo: String = "",
    val cardPhone: String = "",
    val bankName: String = "",
    val certImgUpUrl: String? = null,
    val certImgDownUrl: String? = null,
    val userLevel: Int = -1,
    var nickName: String? = null,
    val bankNo: String = "",
    val cardOwner: String = "",
    val type: Int = 1,
    // 是否购买手机卡套餐 1-是 0-否  用来判断是VIP还是VIP PLUS
    val isMobilePackage: Int = 0,
    // 是否可以升级为老板 1-是 0-否  判断是否显示服务商升级入口
    val isUpBoss: Int = 0,
)

data class BalanceTotal(
    var balance: BigDecimal = BigDecimal("0.0"),
    var integral: BigDecimal = BigDecimal("0.0"),
    val marketIntegral: BigDecimal = BigDecimal("0.0"),
    val toBeIntegral:BigDecimal = BigDecimal("0.0"),
    val totalBalance:BigDecimal = BigDecimal("0.0"),
    val todayIntegral:BigDecimal = BigDecimal("0.0"),
    val totalIntegral:BigDecimal = BigDecimal("0.0"),
    val withdrawalAmount:BigDecimal = BigDecimal("0.0"),
    val withdrawalBalance:BigDecimal = BigDecimal("0.0"),
    val usedMarketIntegral:BigDecimal = BigDecimal("0.0"),
    val totalMarketIntegral:BigDecimal = BigDecimal("0.0"),
    val frozenWithdrawIntegral:BigDecimal = BigDecimal("0.0"),
)

data class FileInfo(
    val addTime: String = "",
    val id: String = "",
    val key: String = "",
    val name: String = "",
    val size: Int = 0,
    val type: String = "",
    val updateTime: String = "",
    val url: String = "",
)

data class CustomerRecord(
    val addTime: String = "",
    val addDate: String = "",
    var nickName: String = "",
    val phone: String = "",
    // 是否是直属代理 0-否 1-是
    val direct: Int = 0,
    val userLevel: Int = 0,
    val userLevelDesc: String = "",
    val type: String = "",
    val userId: Int = 0,
)

data class CustomerTotal(
    val agentTotal: Int = 0,
    val bossTotal: Int = 0,
    val memberTotal: Int = 0,
    val todayAgent: Int = 0,
    val todayBoss: Int = 0,
    val todayTotal: Int = 0,
    val todayUser: Int = 0,
    val userTotal: Int = 0,
)

@Parcelize
data class NoticeBean(
    val addTime: String = "",
    val content: String = "",
    val id: Int = 0,
    val name: String = "",
    val status: Int = 0,
    val updateTime: String = "",
) : Parcelable

data class UserWithdrawal(
    val addTime: String = "",
    val amount: String = "",
    val fee: String = "",
    val integral: String = "",
    val status: Int = 0,
    val statusRemark: String = "",
    val userId: Int = 0,
    val id: Int = 0,
)

data class UserIntegralBean(
    val addTime: String = "",
    val addDate: String = "",
    val balance: String = "",
    val changeRemark: String = "",
    val changeType: Int = 0,
    val id: Int = 0,
    val incomeType: Int = 0,
    val num: Double = 0.0,
    val outUnionId: Int = 0,
    val remark: String = "",
    val sourceUserId: Int = 0,
    val phone: String = "",
    val userId: Int = 0,
)

data class AreaIncomeLogBean(
    val addTime: String = "",
    val addDate: String = "",
    val balance: String = "",
    val changeRemark: String = "",
    val changeType: Int = 0,
    val id: Int = 0,
    val incomeType: Int = 0,
    val num: Double = 0.0,
    val outUnionId: Int = 0,
    val remark: String = "",
    val phone: String = "",
    val sourceUserId: Int = 0,
    val userId: Int = 0,
)

data class BannerBean(
    val addTime: String = "",
    val id: Int = 0,
    val link: String = "",
    val linkType: Int = 1,
    val name: String = "",
    val position: Int = 0,
    val sorted: Int = 0,
    val status: Int = 0,
    val updateTime: String = "",
    val url: String = "",
)

data class WeiXiBean(
    val openid: String,
)

data class TrdLoginInfo(
    val accessToken: String = "",
    val isRegister: String = "",
    val openId: String = "",
)

data class VersionBean(
    val addTime: String = "",
    val appType: Int = 2,
    val bundleId: String = "",
    val id: Int = 0,
    val isForce: Int = 0,
    val status: Int = 0,
    val updateTime: String = "",
    val url: String = "",
    val version: String = "",
)

data class SysConfig(
    @Json(name = "app_customer_servicel_phone")
    val appCustomerServicePhone: String = "",
    @Json(name = "app_customer_servicel_wx")
    val appCustomerServiceWx: String = "",
    @Json(name = "app_share_url")
    val appShareUrl: String = "",
    @Json(name = "app_share_title")
    val appShareTitle: String = "",
    @Json(name = "app_share_content")
    val appShareContent: String = "",
    @Json(name = "app_share_file_list")
    val appShareFileList: String = "",
    @Json(name = "app_withdraw_desc_gm")
    val appWithdrawDescGm: String = "",
    @Json(name = "app_withdraw_desc_yj")
    val appWithdrawDescYj: String = "",
    @Json(name = "app_mobile_agreement")
    val appMobileAgreement: String = "",
    @Json(name = "app_agreement_content")
    val appAgreementContent: String = "",
    @Json(name = "app_receipt_content")
    val appReceiptContent: String = "",
)

data class UserCount(
    val payNotCount: Int = 0,
    val sendNotCount: Int = 0,
    val sentCount: Int = 0,
)

data class TrdJyUrl(
    @Json(name = "redirect_url")
    var redirectUrl: String? = "",
    var appUrl: String? = "",
    var dfUrl: String? = "",
)